In this chapter, you'll learn how to design new kinds of games with Xconq. Xconq has been designed to support the use of a variety of techniques to design, construct, and test your game idea. These techniques range from text file editing to online painting, and you will likely find a combination of techniques to be most effective.
As the person customizing Xconq, you will be called the designer. This term also indicates the primary activity, which will be to Design The Game. The capabilities described below are merely tools; it is up to you the designer to exercise discretion and judgement in using them. Some principles of game design will be discussed in at the end of this chapter. Note that this chapter is merely an overview of game design machinery; for precise definitions, see the Reference Manual chapter. The glossary defines all the terms.
You design games using Xconq's Game Design Language (GDL). GDL is Xconq's common language for defining all parts of a game, from the entry in the menu that players select games from, down to the last tiny detail of a saved game. GDL resembles Lisp, although (at the present time) it is not a procedural language; there are no functions or even any control constructs. Instead, the contents of a file guide the creation or modification of Xconq objects representing types, tables, units, and so forth. While a game is being played, Xconq uses this data to decide what to do and what to allow players to do.
(People often have trouble with parentheses in Lisp, but if you follow the same kinds of indentation rules that you always use in C or Pascal, then you will encounter no additional trouble. Also, many editors such as Emacs are intelligent enough to indicate when parentheses match, and automatically do proper indentation.)
In this chapter, "you" always means means you the designer, and players will be referred to as "players" or "users". The distinction is important; as the game designer, you will encounter and deal with many technical issues relating to the inner workings of Xconq, but if you master those issues, your players will see only a fun game to play.
A final caveat before plunging in: Xconq is an experiment in the design and construction of configurable games. This means I have had limited prior art on which to build, and there are lots of odd corners that have never been tested or even thought about. In this spirit, I would like to hear about weird cases, and ideas for how to handle them.